This invention relates to apparatus and methods for providing coordinated and personalized application and data management. In particular, this invention relates to apparatus and methods for providing coordinated and personalized application and data management in mobile devices.
Computer devices connected by a network are typically capable of sharing information. In a world wide network, such as the Internet, client computers or devices connected to the network are capable of accessing information stored in virtually any server computers connected to the network. Many modern server computers provide rich media that are accessible across the Internet. Examples of rich media are audio, video, image, software, applications, games, data, and other multimedia information.
Typically, transmission of rich media across the Internet requires a wide bandwidth. Further, the cost and efficiency for a user to retrieve rich media is dependent on the capacity of the user""s computer or device. Partly due to size constraints, most existing wireless/mobile devices do not have the capacity to effectively retrieve rich media. In particular, most wireless/mobile devices have very limited memory space for caching and inadequate processing capability for retrieving complex objects.
Generally, wireless/mobile devices include a user interface, such as a micro-browser, pre-installed on a wireless/mobile device and a set of fixed applications and hierarchical menus for Internet access. Using the micro-browser, a user typically browses the Internet via one or more gateways using the fixed menus or by manually entering specific uniform resource locators (URLs). Such fixed menus are not tailored to a user""s preferences.
Through the micro-browser, a user typically performs a search for an application or data on a network by entering keywords into an input area. Based on the keywords, a search engine, which typically resides in the gateway, performs a search and returns a set of search results. Often, hundreds or thousands of search results are returned. The user then has a choice to narrow the search by entering more keywords or browse through the entire search results for the application or data he/she is looking for. This latter option is especially problematic in wireless/mobile devices where the output device (e.g., screen) and caching memory are typically small and connection to the network is costly.
Once an application or data set is selected, the mobile device typically has to download the application/data set from a server via one or more gateways in order for the user at the mobile device to actually execute or access the application/data set. Repeated downloading of a frequently selected application/data set is inefficient and time-consuming. Further, the mobile device might not be able to access the application/data set at all if it fails to maintain a connection with the servers via one or more gateways during a downloading process.
Thus, it is desirable to provide apparatus and methods that performs efficient application and data set management both on the mobile device and the gateways. An object of this invention is to provide apparatus and methods for coordinated and personalized application and data management in mobile devices.
An exemplary method for managing information in a mobile device comprises the steps of downloading a first set of files, determining whether a local cache has enough space to store the set of files, storing the set of files into the local cache if the local cache has enough space, selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and repeating the determining step until the first set of files is stored into the local cache. In one embodiment, if no space can be obtained from the local cache, a record for the downloaded first set of files is stored in a database even though the first set of files is not stored in the local cache.
In an exemplary embodiment, the selecting step includes the step of selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record. In another exemplary embodiment, the selecting step includes the step of selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
Another exemplary method for managing information in a mobile device comprises the steps of receiving a set of update files, updating a set of original files in a local cache with the set of update files if the set of update files is smaller than or equal to the size of the set of original files, determining whether the local cache has enough space to store the set of update files if the set of update files is larger than the size of the set of original files, updating the set of original files in the local cache in accordance with the set of update files if the local cache has enough space, selecting an out-dated record and removing a set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and repeating the determining step until the set of original files is updated in the local cache. In an exemplary embodiment, the set of update files is a set of update application files or a set of update data set files.
Yet another method for managing information in a mobile device comprises the steps of receiving an update notification to update a set of files stored in a local cache, the update notification including an update version identification, dynamically generating an original version identification for the set of files, comparing the update version identification to the original version identification, marking the set of files as out-dated if the update version identification is different than the original version identification, and automatically updating the set of files prior to processing a loading or execution command. In an exemplary embodiment, the set of files is a set of application files or a set of data set files.
An exemplary method for managing information on a mobile device when the mobile device is disconnected from a gateway during an operation comprises the steps of maintaining an active communication state if the disconnection is short-lived, saving a transaction status in a local cache if the disconnection is long-lived, periodically attempting to reestablish connection, and resuming communication at a point of failure when connection is reestablished.
An exemplary computer program product for managing information in a mobile device comprises logic code for downloading a first set of files, logic code for determining whether a local cache has enough space to store the set of files, logic code for storing the set of files into the local cache if the local cache has enough space, logic code for selecting an out-dated record and removing a second set of files corresponding to the out-dated record from the local cache if the local cache does not have enough space, and logic code for repeating the determining until the first set of files is stored into the local cache. In one embodiment, if no space can be obtained from the local cache, the exemplary computer program product further comprises logic code for creating a record for the downloaded first set of files and storing the record in a database even though the first set of files is not stored in the local cache.
In an exemplary embodiment, the logic code for selecting includes logic code for selecting an application selection record associated to a least recently executed application or a least frequently executed application based on parameter values in each application selection record. In another exemplary embodiment, the logic code for selecting includes logic code for selecting a data access record associated to a least recently accessed data set or a least frequently accessed data set based on parameter values in each data access record.
Another computer program product for managing information in a mobile device comprises logic code for receiving a set of update files, logic code for updating a set of original files in a local cache with the set of update files if the set of update files is smaller than or equal to the size of the set of original files, logic code for determining whether the local cache has enough-space to store the set of update files if the set of update files is larger than the size of the set of original files, logic code for updating the set of original files in the local cache in accordance with the set of update files if the local cache has enough space, logic code for selecting an out-dated record and removing a set of files corresponding to the out-dated record from the local cache if the local caches does not have enough space, and logic code for repeating the determining until the set of original files is updated in the local cache. In an exemplary embodiment, the set of update files is a set of update application files or a set of update data set files.
Yet another computer program product for managing information in a mobile device comprises logic code for receiving an update notification to update a set of files stored in a local cache, the update notification including an update version identification, logic code for dynamically generating an original version identification for the set of files, logic code for comparing the update version identification to the original version identification, logic code for marking the set of files as out-dated if the update version identification is different than the original version identification, and logic code for automatically updating the set of files prior to processing a loading or execution command. In an exemplary embodiment, the set of files is a set of application files or a set of data set files.
An exemplary computer program product for managing information on a mobile device when the mobile device is disconnected from a gateway during an operation comprises logic code for maintaining an active communication state if the disconnection is short-lived, logic code for saving a transaction status in a local cache if the disconnection is long-lived, logic code for periodically attempting to reestablish connection, and logic code for resuming communication at a point of failure when connection is reestablished.